package com.zy.集合.数组.可变数组

import scala.collection.mutable
import scala.collection.mutable.ArrayBuffer

object Test {

  def main(args: Array[String]): Unit = {

    val arr: ArrayBuffer[Int] = new ArrayBuffer[Int]()
    // 伴生对象构造
    val arr2: ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4, 5)

    println(arr.mkString(" "))
    println(arr2.mkString(" "))

    // 访问元素
    println(arr2(1))

    println("=========================")
    // 添加元素
    arr += 1
    arr += 2 // 尾添加
    println(arr.mkString(" "))
    0 +=: arr // 头添加
    println(arr.mkString(" "))
    arr.insert(3, 3) // 指定位置添加
    println(arr.mkString(" "))
    arr.insertAll(4, Array(4, 5))
    println(arr.mkString(" "))
    arr.append(6, 7)
    println(arr.mkString(" "))

    println("===========================")

    // 删除元素
    arr.remove(0) // remove(start, end) 删除区间
    arr -= 13 // 如果找不到则不删除
    println(arr.mkString(" "))

    println("===========================")

    // 可变数组转换为不可变数组
    val array: Array[Int] = arr.toArray
    println(array.getClass)
    println(array.mkString(" "))

    // 不可变转可变数组
    val buffer: mutable.Buffer[Int] = array.toBuffer
    println(buffer.mkString(" "))
  }

}
